package Herramientas;

import CalendarioDTOS.RegistrosDiaDTO;
import EncuestasDAO.AsignacionDAO;
import EncuestasDTO.EncuestaDTO;
import EncuestasDTO.PreguntaDTO;
import OpticaDTOS.HistorialClinicoDTO;
import OpticaDTOS.PacientesDTO;
import SistemaDTOS.MenuItemDTO;
import SistemaDTOS.UsersDTO;
import TarryDTOS.TarryClientesDTO;
import TarryDTOS.TarryItemPedidoDTO;
import TarryDTOS.TarryPedidosDTO;
import TarryDTOS.TarryProductosDTO;
import java.sql.ResultSet;
import java.sql.SQLException;

public class ResultSets {

    public UsersDTO usersDTO(ResultSet rs) throws SQLException {
        UsersDTO user = new UsersDTO();
        user.setId(rs.getInt("id"));
        user.setName(rs.getString("name"));
        user.setPass(rs.getString("pass"));
        user.setEmail(rs.getString("email"));
        user.setServiciosAsignados(rs.getString("servicios_asignados"));
        user.setNivelSeguridad(rs.getInt("nivel_seguridad"));
        user.setEstado(rs.getInt("estado"));
        return user;
    }

    public PacientesDTO pacientesDTO(ResultSet rs) throws SQLException {
        PacientesDTO p = new PacientesDTO();
        p.setIdCliente(rs.getInt("id"));
        p.setNombres(rs.getString("nombre"));
        p.setAp_mat(rs.getString("ap_materno"));
        p.setAp_pat(rs.getString("ap_paterno"));
        p.setEdad(rs.getInt("edad"));
        p.setTelefono(rs.getInt("telefono"));
        p.setDireccion(rs.getString("direccion"));
        p.setEmail(rs.getString("email"));
        p.setEstado(rs.getInt("estado"));
        p.setNombreCompleto(p.getNombres() + " " + p.getAp_pat() + " " + p.getAp_mat());
        return p;
    }

    /**
     * HISTORIAL CLINICO
     *
     * @param rst
     * @return
     * @throws SQLException
     */
    public HistorialClinicoDTO histroialClinicoDTO(ResultSet rst) throws SQLException {
        HistorialClinicoDTO h = new HistorialClinicoDTO();

        h.setId(rst.getInt("id"));
        h.setIdCliente(rst.getInt("id_cliente"));
        h.setPrincipalProblema(rst.getString("principal_problema"));
        h.setUltimoExamen(rst.getString("ultimo_examen"));
        h.setMejorVista(rst.getInt("mejor_vista"));
        // VARIABLES TLD
        h.setAnioUltimoExamen(0);
        h.setMesUltimoExamen(0);
        // VARIABLES TLD
        h.setTipoLuzSencibilidad(rst.getInt("tipo_luz_sencibilidad"));
        h.setOd(rst.getString("od"));
        h.setOdx(rst.getString("od_x"));
        h.setOi(rst.getString("oi"));
        h.setOix(rst.getString("oi_x"));
        h.setOjosArdor(rst.getInt("ojos_ardor"));
        h.setOjosLlorosos(rst.getInt("ojos_llorosos"));

        // AGREGADOS
        h.setFechaCreacion(rst.getString("fecha_creacion"));
        h.setEstado(rst.getInt("estado"));
        // AGREGADOS 

        h.setDiabetes(rst.getInt("diabetes"));
        h.setHipertension(rst.getInt("hipertension"));
        h.setAlergias(rst.getInt("alergias"));

        h.setModelo(rst.getString("modelo"));
        h.setMateriales(rst.getString("materiales"));

        h.setAvscod(rst.getDouble("avscod"));
        h.setAvscoi(rst.getDouble("avscoi"));

        h.setAvccrxod(rst.getDouble("avccrxod"));
        h.setAvccrxoi(rst.getDouble("avccrxoi"));

        h.setAvcaeod(rst.getDouble("avcaeod"));
        h.setAvcaeoi(rst.getDouble("avcaeoi"));

        h.setOdesf(rst.getDouble("odesf"));
        h.setOdcil(rst.getDouble("odcil"));
        h.setOdeje(rst.getDouble("odeje"));
        h.setOdadd(rst.getDouble("odadd"));
        h.setOdalt(rst.getDouble("odaltura"));
        h.setOddi(rst.getDouble("oddi"));

        h.setOiesf(rst.getDouble("oiesf"));
        h.setOicil(rst.getDouble("oicil"));
        h.setOieje(rst.getDouble("oieje"));
        h.setOiadd(rst.getDouble("oiadd"));
        h.setOialt(rst.getDouble("oialtura"));
        h.setOidi(rst.getDouble("oidi"));

        return h;
    }

    /**
     * ALAN GONZALEZ
     *
     * @param rst
     * @return
     * @throws SQLException
     */
    public EncuestaDTO encuestaDTO(ResultSet rst) throws SQLException {
        EncuestaDTO e = new EncuestaDTO();
        AsignacionDAO asignacion = new AsignacionDAO();
        e.setId(rst.getInt("id"));
        e.setFolio(rst.getDouble("folio"));
        e.setTitulo(rst.getString("titulo"));
        // asignacion al numero de poreguntas 
        int nPreguntas = asignacion.contarPreguntasEncuesta(e.getFolio());
        e.setNumeroPreguntas(nPreguntas);
        // asignacion al numero de poreguntas 
        return e;
    }

    /**
     * ALAN GONZALEZ
     *
     * @param rst
     * @return
     * @throws SQLException
     */
    public PreguntaDTO preguntaDTO(ResultSet rst) throws SQLException {
        PreguntaDTO p = new PreguntaDTO();
        p.setId(rst.getInt("id"));
        p.setFolioPregunta(rst.getDouble("folio_pregunta"));
        p.setPregunta(rst.getString("pregunta"));
        p.setTipoPregunta(rst.getInt("tipo_pregunta"));
        p.setRespuestaPosibles(rst.getInt("n_respuestas_posibles"));
        p.setRespuesaCorrecta(rst.getString("respuesta_correcta"));
        p.setEstado(rst.getInt("estado"));
        return p;
    }

    /**
     *
     * @param rst
     * @return
     * @throws SQLException
     */
    public RegistrosDiaDTO registrosDiaDTO(ResultSet rst) throws SQLException {
        RegistrosDiaDTO r = new RegistrosDiaDTO();
        r.setId(rst.getInt("id"));
        r.setUserId(rst.getInt("user_id"));
        r.setFechaEvento(rst.getString("fecha_evento"));
        r.setHoraEventoInicio(rst.getString("hora_evento_inicio"));
        r.setHoraEventoFin(rst.getString("hora_evento_fin"));
        r.setDescripcion(rst.getString("descripcion"));
        return r;
    }

    /**
     * ALAN GONZALEZ ITEM DE MENU DINAMICO
     *
     * @param rst
     * @return
     * @throws SQLException
     */
    public MenuItemDTO menuItemDTO(ResultSet rst) throws SQLException {
        MenuItemDTO m = new MenuItemDTO();
        m.setId(rst.getInt("id"));
        m.setIdCategoria(rst.getInt("id_categoria"));
        m.setIdPertnece(rst.getInt("id_pertenece"));
        m.setNivelSeguridad(rst.getInt("nivel_seguridad"));
        m.setNumeroServicio(rst.getInt("numero_servicio"));
        m.setTitulo(rst.getString("titulo"));
        m.setUrl(rst.getString("url"));
        return m;
    }

    // ------->  INICIO LA DEMO PARA TARRY DULCES
    /**
     * ALAN GONZALEZ
     *
     * @param rst
     * @return
     * @throws SQLException
     */
    public TarryPedidosDTO tarryPedidosDTO(ResultSet r) throws SQLException {
        TarryPedidosDTO p = new TarryPedidosDTO();
        p.setId(r.getInt("id"));
        p.setIdVendedor(r.getInt("id_vendedor"));
        p.setIdPedidido(r.getInt("id_pedido"));
        p.setIdCliente(r.getInt("id_cliente"));
        p.setEstado(r.getInt("estado"));
        p.setFechaCreacion(r.getString("fecha_creacion"));
        p.setHoraCreacion(r.getString("hora_creacion"));
            p.setTotal(r.getDouble("total"));
        p.setTotalIva(r.getDouble("total_iva"));
        p.setObservaciones(r.getString("observaciones"));
        return p;
    }

    /**
     * ALAN GONZALEZ
     *
     * @param r
     * @return
     * @throws SQLException
     */
    public TarryClientesDTO tarryClientesDTO(ResultSet r) throws SQLException {
        TarryClientesDTO t = new TarryClientesDTO();
        t.setId(r.getInt("id"));
        t.setIdCliente(r.getInt("id_cliente"));
        t.setNombre(r.getString("nombre"));
        t.setDireccion(r.getString("direccion"));
        t.setTelefono(r.getInt("telefono"));
        t.setEmail(r.getString("email"));
        t.setFechaApertura(r.getString("facha_apertura"));
        t.setDescuentoAsignado(r.getInt("decuento"));
        return t;
    }

    /**
     * ALAN GONZALEZ
     *
     * @param r
     * @return
     * @throws SQLException
     */
    public TarryProductosDTO tarryProductosDTO(ResultSet r) throws SQLException {
        TarryProductosDTO pr = new TarryProductosDTO();
        pr.setId(r.getInt("id"));
        pr.setNombre(r.getString("nombre_producto"));
        pr.setPresentacionUnidad(r.getString("presentacion_unidad"));
        pr.setPresentacionCorrugado(r.getString("presentacion_corrugado"));
        return pr;
    }

    /**
     * ALAN GONZALEZ
     * @param r
     * @return
     * @throws SQLException 
     */
    public TarryItemPedidoDTO tarryItemPedidoDTO(ResultSet r) throws SQLException {
        TarryItemPedidoDTO itm = new TarryItemPedidoDTO();
        itm.setId(r.getInt("id"));
        itm.setIdPedido(r.getInt("id_pedido"));
        itm.setIdProducto(r.getInt("id_producto"));
        itm.setCantidadUnidad(r.getInt("cantidad_unidades"));
        itm.setPrecioAsignadoUnidad(r.getDouble("precio_asigando_unidad"));
        itm.setSubtotalUnidad(r.getInt("subtotal_unidades"));
        itm.setCantidadCorrugados(r.getInt("cantidad_corrugados"));
        itm.setPrecionAsignadoCorrugado(r.getInt("precio_asigando_corrugado"));
        itm.setSubtotalCorrugados(r.getInt("subtotal_corrugados"));
        itm.setDescuentoItem(r.getInt("descuento_asignado"));
        itm.setTotalItem(r.getDouble("total_item"));
        return itm;
    }

}
